iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
AI & Data

Object Detection and Image Processing with Python系列 第 30

《第30天》鋼胚序號辨識:YOLOX及其他OD模型效能比對

  • 分享至 

  • xImage
  •  

PascalVOC(xml)轉COCO(json)格式與分配資料集

  1. 轉換方式:參考《第26天》YOLO訓練流程與資料集COCO json格式,修改資料夾路徑後,執行xml_to_coco_labelpy。

  2. 執行結果

    2.1 train2017

    2.2 val2017

    2.3 annotations


YOLOX

  1. 參數修改

    1.1 yolox_s_ocr.py參數檔

    • 複製./YOLOX/exps/example/custom/yolox_s.py,建立客製化的./YOLOX/exps/example/custom/yolox_s_ocr.py

    • 設定參數。

      # 資料集與COCO格式標籤路徑
      self.data_dir = "datasets/ocr"
      self.train_ann = "instances_train2017.json"
      self.val_ann = "instances_val2017.json"
      
      # 資料集類別數量(coco128有71個類別)
      self.num_classes = 34
      
      # 模型迭代次數
      self.max_epoch = 50
      
      # 影響資料前處理速度,通常使用4或8
      self.data_num_workers = 4
      

    1.2 coco_classes.py:開啟./YOLOX/yolox/data/datasets/coco_classes.py,將COCO_CLASSES = ( ) 中的類別,修改成ocr的34個類別。

  2. 訓練模型

    2.1 訓練參數:batch size=1、image size=640、epochs=50

    2.2 GPU占用:5.863G

  3. 訓練結果

    3.1 mAP@0.5:0.8161

    3.2 訓練50epochs花費:14分12秒(0.2367小時)

    • 起始時間:17點33分26秒。
    • 結束時間:17點47分38秒。


5個OD模型效能比對(鋼胚字元辨識)

  1. 訓練條件

    1.1 batch size為1。
    1.2 epoch為50。
    1.3 輸入圖片尺寸為640。
    1.4 設備:CPU為10700K、GPU為RTX2060S(8Gb)。

  2. OCR效能比對(鋼胚字元辨識)

  3. 結論

    3.1 YOLOX之鋼胚字元辨識表現最佳:mAP為0.816,遠超其餘的4個OD模型。

    3.2 根據上述實驗結果,初步推測YOLOX具有下列優勢。

    • 可小資料集(180張圖片)訓練
    • 小物件偵測效果佳(單個字元尺寸僅35*45)
    • 模型收斂速度快(僅30epochs收斂)
    • 屬於訓練成本高(顯存占用高)、推論成本低(顯存占用低)的OD模型

    3.3 未來研究方向

    • 擴大資料集:將標記後資料集從180張圖片,放大到5,000張。
    • 擴大batch size:選用顯存更大的GPU,以batch sie 16、32等訓練模型。
    • 資料集類別平衡:計算類別出現次數篩選樣本,或使用資料擴增合成樣本。

完賽心得

  1. 完了,明年IT鐵人賽沒料了狗砸魯

讓我們繼續看下去...


參考資料

  1. 中鋼人工智慧挑戰賽-字元辨識

上一篇
《第29天》鋼胚序號辨識:YOLOR與YOLOv7
系列文
Object Detection and Image Processing with Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言